草庐IT

javascript - 意外的 Javascript RegExp 行为

全部标签

ruby-on-rails - 了解 `include` mixin 模块的 "subsequent"语句行为

我试图理解include语句在多个Mixin中使用时的行为。也就是说,我有这些声明:classArticleDoubleIncludedModule将被包含在Article类中多少次?也就是说,由于DoubleIncludedModule的“后续”包含(首先在Article类中,然后在Article包含的AModule中类本身),将是Ruby自动处理的“双重包含”问题,还是DoubleIncludedModule(错误地)包含两次?当然,我想包含DoubleIncludedModule模块仅一次。我怎样才能以正确的方式做到这一点(也许通过使用一些RubyonRails方法)?

ruby - 使用空数组意外行为初始化哈希

这个问题在这里已经有了答案:Strange,unexpectedbehavior(disappearing/changingvalues)whenusingHashdefaultvalue,e.g.Hash.new([])(4个答案)关闭3年前。我想用一个空的Array初始化一个Hash并且对于每个新键将特定值推送到该数组。这是我尝试做的:a=Hash.new([])#=>{}a[1]["asd"]a#=>{}a的预期输出是{1=>["asd"]}但这并没有发生。我在这里缺少什么?ruby版本:ruby2.0.0p598(2014-11-13revision48408)[x86_64-

ruby-on-rails - rails heroku - 如何安装需要 'npm install ...' 的 javascript 依赖项

我正在将我的Rails应用程序部署到heroku。我想使用一些javascript库,它们希望我们像这样安装npm依赖项:npminstallabc因此,在本地我可以安装npm和执行“npminstallabc”。不确定如何在heroku中与我的Rails应用程序一起使用。 最佳答案 使用Heroku的多重构建方法:UsingMultipleBuildpacksforanApp通过先安装NodeJS,再安装Ruby,Heroku将在Ruby中发生任何事情之前安装您的Node依赖项。herokubuildpacks:setheroku

ruby - 将字符串插入数组中的数组会产生意外结果

我在Ruby中有一个包含5个空数组的数组。我正在尝试使用运算符将字符串插入第一个数组,但结果是字符串被插入所有数组。请帮助我理解这一点。预期的输出是:#=>[["car"],[],[],[],[]]但我得到:#=>[["car"],["car"],["car"],["car"],["car"]]IRB转储:1.9.3-p194:001>output=Array.new(5,[])=>[[],[],[],[],[]]1.9.3-p194:002>output.inspect=>"[[],[],[],[],[]]"1.9.3-p194:003>output[0].inspect=>"[]"

ruby - 为什么 array.each 行为取决于 Array.new 语法?

我正在使用Ruby1.9.2-p290并发现:a=Array.new(2,[]).each{|i|i.push("a")}=>[["a","a"],["a","a"]]这不是我所期望的。但以下构造函数样式确实符合我的预期:b=Array.new(2){Array.new}.each{|i|i.push("b")}=>[["b"],["b"]]第一个例子是预期的行为吗?在ruby​​-doc中,我的size=2参数对于两个构造函数来说似乎是同一种参数。我认为,如果each方法通过了该参数,那么它将以相同的方式为两个构造函数使用它。 最佳答案

Ruby 意外的关键字结束,以及意外的输入结束

我的代码如下。如果我删除最后一个end,它会说unexpectedendofinput,如果我把end放回去,它会说unexpectedkeyword结束。我看不出以下代码有什么问题。可以吗?n=gets.chomp.to_iarray=Array.new(n,true)whilep 最佳答案 增量运算符(++):p++在Ruby中不存在。你的意思是:p+=1 关于Ruby意外的关键字结束,以及意外的输入结束,我们在StackOverflow上找到一个类似的问题:

ruby - 来自 rails 3 中 therubyracer/v8 的 javascript 错误的堆栈跟踪

我正在使用therubyracer和v8在Rails3应用程序中运行一些javascript如果出现任何问题,错误消息将通过通常的Rails3异常通知流程通过电子邮件发送给我。但是,我返回的错误消息非常模糊,堆栈跟踪不会进入javascript文件本身。这是可以理解的,但是很难调试。这是一个例子:V8::JSError:Cannotreadproperty'0'ofundefinedbacktrace:lib/libraryname.rb:32:in`function_that_calls_v8'lib/libraryname.rb:18:in`fetch_and_update'app

ruby-on-rails - Rails 递归 View 与对象关联的奇怪行为

我有一个与自身关联的评论表以供回复。基本上,具有parent_id的评论也是对其父评论的回复。为了呈现这个,我使用了一个递归View,它在过去非常简单,但不适用于rails3.2.0和ruby​​2.1.1这里是简化的代码:;"/_redesign/entry/comment",:collection=>x,:as=>:comment%>输出是:349223;CommentArray349229;CommentComment在第二次迭代中,comment.replies是一个评论,而不是一个数组,并且所有内容都从那里落下。但是,如果我更改第一行并添加重新加载:全部开始工作,输出为:34

ruby-on-rails - bundle 安装错误,意外 ':'

我知道网上有很多问题或类似问题,但它不适合我的情况。我正在安装redmine,当我调用bundleinstall时,出现此错误:[!]Therewasanerrorparsing`Gemfile`:compileerror-syntaxerror,unexpected':',expecting$endgem'tzinfo-data',platforms:[:mingw,:x64_mingw,:mswin,:jruby]^.Bundlercannotcontinue.错误在这一行(以->为前缀的那一行):source'https://rubygems.org'ifGem::Version

ruby - 为什么带有 splat 参数的 Ruby 过程/ block 的行为与方法和 lambda 不同?

为什么带有splat参数的Ruby(2.0)过程/block的行为与方法和lambda不同?deffoo(ids,*args)pidsendfoo([1,2,3])#=>[1,2,3]bar=lambdado|ids,*args|pidsendbar.call([1,2,3])#=>[1,2,3]baz=procdo|ids,*args|pidsendbaz.call([1,2,3])#=>1defqux(ids,*args)yieldids,*argsendqux([1,2,3]){|ids,*args|pids}#=>1这是对此行为的确认,但没有解释:http://makandra